1. Field
The disclosure relates generally to an improved data processing system and more specifically to distributing files in a computer network. Still more particularly, the disclosure relates to a computer implemented method, apparatus, and computer program product for providing efficient use of peer cache space in large scale file distributions.
2. Description of the Related Art
Dynamic content delivery is a service which uses a specially designed computer system for efficiently distributing large files to multiple clients. In a dynamic content delivery system, a file is published by uploading the file to a depot server. The file is then copied across the network to other depot servers. When a client requests a file download, a centralized storage manager in the content delivery system creates a download plan and sends the plan to the client.
The download plan typically contains a client specific authorization to download the file using the dynamic content delivery system and a detailed plan for downloading the file. The detailed plan contains one or more locations, such as dedicated file (depot) servers, where the file is available for download. The detailed plan also specifies various aspects of the download process, including the maximum download speed for each source, the number of simultaneous connections to open at a time, and the minimum and maximum segment size. A client uses the download plan to open connections to multiple depot servers and simultaneously retrieve different segments of the file from different depot servers.
In some file distribution systems, peer-to-peer downloading is often enabled to reduce the need for dedicated depot servers and reduce WAN (wide area network) traffic. In order for peering to be successful, each peer server (end-user system) in the file distribution network must dedicate a substantial amount of space for caching the files to be shared among the peer clients. When a file is distributed to a peer server, the file is cached in the peer server and is ready to be shared among close-by peer clients that also need the file. However, when a close-by peer client requests and downloads the file from the peer server, the peer client also caches a copy of the file and notifies the centralized storage manager that the peer client has a copy of the file. Consequently, if the file is requested by all end-user systems in a particular zone, then all end-user systems in the zone will have a copy of the cached file available for peering.